/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package carrancao.controlador;

import carrancao.entidades.Fornecedor;
import carrancao.exception.CadastrarFornecedorException;
import carrancao.repositorio.FornecedorRepositorio;
import java.util.List;
import javax.swing.JOptionPane;

/**
 *
 * @author Lubnnia
 */
public class FornecedorControlador {

    private FornecedorRepositorio fornecedorRep;

    public FornecedorControlador() {
        this.fornecedorRep = new FornecedorRepositorio();
    }

    public void validarFornecedor(Fornecedor fornecedor) throws CadastrarFornecedorException {

        if(fornecedor.getRazaoSocial().equals("") || fornecedor.getNomeFantasia().equals("")
                || fornecedor.getEndereco().getLogradouro().equals("") || fornecedor.getEndereco().getBairro().equals("")
                || fornecedor.getEndereco().getCep().equals("") || fornecedor.getEndereco().getCidade().equals("")
                || fornecedor.getEndereco().getComplemento().equals("") || fornecedor.getEndereco().getNumero().equals("")
                || fornecedor.getEndereco().getUf().equals("") || fornecedor.getObs().equals("")) {
            JOptionPane.showMessageDialog(null, "Favor preencha os campos obrigatórios",
                    "Mensagem do Sistema", JOptionPane.INFORMATION_MESSAGE);
        }
    }

    public void cadastrarFornecedor(Fornecedor fornecedor) throws CadastrarFornecedorException {

        this.validarFornecedor(fornecedor);

        this.fornecedorRep.cadastrarFornecedor(fornecedor);

        JOptionPane.showMessageDialog(null, "Fornecedor Cadastrado com Sucesso!",
                "Mensagem do Sistema", JOptionPane.INFORMATION_MESSAGE);
    }

    public boolean alterarFornecedor(Fornecedor fornecedor) throws CadastrarFornecedorException {
        boolean resposta = false;
        if(!(fornecedor.getNomeFantasia().equals("") && fornecedor.getRepresentante().equals("") && fornecedor.getTelefone().equals(""))) {
            this.fornecedorRep.alterarFornecedor(fornecedor);
            resposta = true;
        } else {
            resposta = false;
        }
        return resposta;
    }

    public void deletarFornecedor(Fornecedor fornecedor) {

        if(fornecedor != null) {
            this.fornecedorRep.deletarFornecedor(fornecedor);
            JOptionPane.showMessageDialog(null, "Dados Excluídos com Sucesso!",
                    "Mensagem do Sistema", JOptionPane.INFORMATION_MESSAGE);
        } else {
            JOptionPane.showMessageDialog(null, "Fornecedor não existe!",
                    "Mensagem do Sistema", JOptionPane.INFORMATION_MESSAGE);
        }
        
    }

    public Fornecedor pesquisarFornecedorPorID(int id) {

        Fornecedor fornecedor = this.fornecedorRep.pesquisarFornecedorPorID(id);

        return fornecedor;
    }

    public List pesquisarFornecedorTodos() {

        List fornecedor = this.fornecedorRep.pesquisarFornecedorTodos();

        return fornecedor;
    }

    public List pesquisarFornecedorPorNome(String nomeFornecedor) {

        List fornecedor = this.fornecedorRep.pesquisarFornecedorPorNome(nomeFornecedor);

        return fornecedor;

    }

}
